<!DOCTYPE HTML>
<html lang="zh-CN">


<head>
    <meta charset="utf-8">
    <meta name="keywords" content="PowerPlatform认证备考（8）—— 如何构建自动化解决方案, 码道诚公">
    <meta name="description" content="">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
    <meta name="renderer" content="webkit|ie-stand|ie-comp">
    <meta name="mobile-web-app-capable" content="yes">
    <meta name="format-detection" content="telephone=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
    <meta name="baidu-site-verification" content="code-oqVlgh2wQV" />
    <meta name="google-site-verification" content="Z-8Fm46WY6NL_3kxilmoqToW4jnvyF7boTgciTLBXUs" />
    <!-- Global site tag (gtag.js) - Google Analytics -->


    <title>PowerPlatform认证备考（8）—— 如何构建自动化解决方案 | 码道诚公</title>
    <link rel="icon" type="image/png" href="/favicon.png">

    <link rel="stylesheet" type="text/css" href="/libs/awesome/css/all.css">
    <link rel="stylesheet" type="text/css" href="/libs/materialize/materialize.min.css">
    <link rel="stylesheet" type="text/css" href="/libs/aos/aos.css">
    <link rel="stylesheet" type="text/css" href="/libs/animate/animate.min.css">
    <link rel="stylesheet" type="text/css" href="/libs/lightGallery/css/lightgallery.min.css">
    <link rel="stylesheet" type="text/css" href="/css/matery.css">
    <link rel="stylesheet" type="text/css" href="/css/my.css">

    <script src="/libs/jquery/jquery.min.js"></script>

<meta name="generator" content="Hexo 5.2.0">
<style>.github-emoji { position: relative; display: inline-block; width: 1.2em; min-height: 1.2em; overflow: hidden; vertical-align: top; color: transparent; }  .github-emoji > span { position: relative; z-index: 10; }  .github-emoji img, .github-emoji .fancybox { margin: 0 !important; padding: 0 !important; border: none !important; outline: none !important; text-decoration: none !important; user-select: none !important; cursor: auto !important; }  .github-emoji img { height: 1.2em !important; width: 1.2em !important; position: absolute !important; left: 50% !important; top: 50% !important; transform: translate(-50%, -50%) !important; user-select: none !important; cursor: auto !important; } .github-emoji-fallback { color: inherit; } .github-emoji-fallback img { opacity: 0 !important; }</style>
<link rel="alternate" href="/atom.xml" title="码道诚公" type="application/atom+xml">
<link rel="stylesheet" href="/css/prism-tomorrow.css" type="text/css"></head>




<body>
    <header class="navbar-fixed">
    <nav id="headNav" class="bg-color nav-transparent">
        <div id="navContainer" class="nav-wrapper container">
            <div class="brand-logo">
                <a href="/" class="waves-effect waves-light">
                    
                    <img src="/medias/logo.png" class="logo-img" alt="LOGO">
                    
                    <span class="logo-span">码道诚公</span>
                </a>
            </div>
            

<a href="#" data-target="mobile-nav" class="sidenav-trigger button-collapse"><i class="fas fa-bars"></i></a>
<ul class="right nav-menu">
  
  <li class="hide-on-med-and-down nav-item">
    
    <a href="/" class="waves-effect waves-light">
      
      <i class="fas fa-home" style="zoom: 0.6;"></i>
      
      <span>首页</span>
    </a>
    
  </li>
  
  <li class="hide-on-med-and-down nav-item">
    
    <a href="/tags" class="waves-effect waves-light">
      
      <i class="fas fa-tags" style="zoom: 0.6;"></i>
      
      <span>标签</span>
    </a>
    
  </li>
  
  <li class="hide-on-med-and-down nav-item">
    
    <a href="/categories" class="waves-effect waves-light">
      
      <i class="fas fa-bookmark" style="zoom: 0.6;"></i>
      
      <span>分类</span>
    </a>
    
  </li>
  
  <li class="hide-on-med-and-down nav-item">
    
    <a href="/archives" class="waves-effect waves-light">
      
      <i class="fas fa-archive" style="zoom: 0.6;"></i>
      
      <span>归档</span>
    </a>
    
  </li>
  
  <li class="hide-on-med-and-down nav-item">
    
    <a href="/about" class="waves-effect waves-light">
      
      <i class="fas fa-user-circle" style="zoom: 0.6;"></i>
      
      <span>关于</span>
    </a>
    
  </li>
  
  <li class="hide-on-med-and-down nav-item">
    
    <a href="/contact" class="waves-effect waves-light">
      
      <i class="fas fa-comments" style="zoom: 0.6;"></i>
      
      <span>留言板</span>
    </a>
    
  </li>
  
  <li class="hide-on-med-and-down nav-item">
    
    <a href="/friends" class="waves-effect waves-light">
      
      <i class="fas fa-address-book" style="zoom: 0.6;"></i>
      
      <span>友情链接</span>
    </a>
    
  </li>
  
  <li>
    <a href="#searchModal" class="modal-trigger waves-effect waves-light">
      <i id="searchIcon" class="fas fa-search" title="搜索" style="zoom: 0.85;"></i>
    </a>
  </li>
</ul>


<div id="mobile-nav" class="side-nav sidenav">

    <div class="mobile-head bg-color">
        
        <img src="/medias/logo.png" class="logo-img circle responsive-img">
        
        <div class="logo-name">码道诚公</div>
        <div class="logo-desc">
            
            Never really desperate, only the lost of the soul.
            
        </div>
    </div>

    

    <ul class="menu-list mobile-menu-list">
        
        <li class="m-nav-item">
	  
		<a href="/" class="waves-effect waves-light">
			
			    <i class="fa-fw fas fa-home"></i>
			
			首页
		</a>
          
        </li>
        
        <li class="m-nav-item">
	  
		<a href="/tags" class="waves-effect waves-light">
			
			    <i class="fa-fw fas fa-tags"></i>
			
			标签
		</a>
          
        </li>
        
        <li class="m-nav-item">
	  
		<a href="/categories" class="waves-effect waves-light">
			
			    <i class="fa-fw fas fa-bookmark"></i>
			
			分类
		</a>
          
        </li>
        
        <li class="m-nav-item">
	  
		<a href="/archives" class="waves-effect waves-light">
			
			    <i class="fa-fw fas fa-archive"></i>
			
			归档
		</a>
          
        </li>
        
        <li class="m-nav-item">
	  
		<a href="/about" class="waves-effect waves-light">
			
			    <i class="fa-fw fas fa-user-circle"></i>
			
			关于
		</a>
          
        </li>
        
        <li class="m-nav-item">
	  
		<a href="/contact" class="waves-effect waves-light">
			
			    <i class="fa-fw fas fa-comments"></i>
			
			留言板
		</a>
          
        </li>
        
        <li class="m-nav-item">
	  
		<a href="/friends" class="waves-effect waves-light">
			
			    <i class="fa-fw fas fa-address-book"></i>
			
			友情链接
		</a>
          
        </li>
        
        
    </ul>
</div>


        </div>

        
    </nav>

</header>

    



<div class="bg-cover pd-header post-cover" style="background-image: url('/medias/featureimages/2.jpg')">
    <div class="container" style="right: 0px;left: 0px;">
        <div class="row">
            <div class="col s12 m12 l12">
                <div class="brand">
                    <h1 class="description center-align post-title">PowerPlatform认证备考（8）—— 如何构建自动化解决方案</h1>
                </div>
            </div>
        </div>
    </div>
</div>




<main class="container content">

    
    <!-- 文章内容详情 -->
<div id="artDetail">
    <div class="card">
        <div class="card-content article-info">
            <div class="row tag-cate">
                <div class="col s7">
                    
                    <div class="article-tag">
                        
                            <a href="/tags/PowerPlatform%E8%AE%A4%E8%AF%81/">
                                <span class="chip bg-color">PowerPlatform认证</span>
                            </a>
                        
                    </div>
                    
                </div>
                <div class="col s5 right-align">
                    
                    <div class="post-cate">
                        <i class="fas fa-bookmark fa-fw icon-category"></i>
                        
                            <a href="/categories/PowerPlatform/" class="post-category">
                                PowerPlatform
                            </a>
                        
                    </div>
                    
                </div>
            </div>

            <div class="post-info">
                
                <div class="post-date info-break-policy">
                    <i class="far fa-calendar-minus fa-fw"></i>发布日期:&nbsp;&nbsp;
                    2020-11-17
                </div>
                

                

                
                <div class="info-break-policy">
                    <i class="far fa-file-word fa-fw"></i>文章字数:&nbsp;&nbsp;
                    6.9k
                </div>
                

                
                <div class="info-break-policy">
                    <i class="far fa-clock fa-fw"></i>阅读时长:&nbsp;&nbsp;
                    25 分
                </div>
                

                
            </div>
        </div>
        <hr class="clearfix">
        <div class="card-content article-card-content">
            <div id="articleContent">
                <p>从一个办公室走到另一个办公室审批，把时间花在重复性任务上的日子已经一去不复返了。借助Power Automate的数百个连接器和模板，您可以轻松编写流程，而又可以将宝贵的时间花在自己喜欢的工作上。 在本模块中，您将探索三个流程，每个流程都能满足不同的业务需求。 您可以采取在这里学习的概念，考虑通过自动执行哪些流程以节省业务时间。</p>
<p>在本模块中，您将：</p>
<ul>
<li>从模板创建流</li>
<li>按计划创建重复流</li>
<li>创建由按钮触发的流程</li>
<li>创建由通用数据服务触发的流</li>
<li>自动审批请求并发现审批中心</li>
</ul>
<h2 id="从模板创建流"><a href="#从模板创建流" class="headerlink" title="从模板创建流"></a>从模板创建流</h2><p>由于有数百个触发器、动作和连接器，有时关于Power Automate的最困难的部分可能是弄清楚从哪里开始。 为了帮助您入门，可以使用无数种流程模板来帮助您构建解决方案。 要查看所有可用模板，您可以登录<a target="_blank" rel="noopener" href="https://ms.flow.microsoft.com/">Power Automate</a>，然后从左侧菜单中选择<strong>Templates</strong>。</p>
<p><img src="/posts/bafa194/flow-templates.png" alt="Power Automate template archive"></p>
<p>在这里，您可以按特定的单词或短语进行搜索，例如“ Common Data Service”，也可以基于类别进行浏览。</p>
<p>如果单击特定模板，将看到有关模板的详细信息，包括它将连接到的数据源。</p>
<p><img src="/posts/bafa194/email-report-template.png" alt="template click in details"></p>
<p>模板非常适合入门并支持定制。因此，您可以采用一个模板并对其进行扩展，以满足您的业务需求。</p>
<h3 id="创建一个流程以将电子邮件附件保存到OneDrive-for-Business"><a href="#创建一个流程以将电子邮件附件保存到OneDrive-for-Business" class="headerlink" title="创建一个流程以将电子邮件附件保存到OneDrive for Business"></a>创建一个流程以将电子邮件附件保存到OneDrive for Business</h3><p>在Contoso Manufacturing上通过电子邮件搜索附件可能很耗时。 为了减轻这些耗时的搜索，您可以构建一个流程，将所有电子邮件附件存储在Microsoft OneDrive for Business帐户的文件夹中。 幸运的是，这里有一个模板可以帮助您入门。</p>
<ol>
<li>从模板列表中搜索“<strong>Save Office 365 email attachments to OneDrive for Business</strong>”，然后单击模板以开始使用它。</li>
<li>单击屏幕底部的Create Flow创建流。<img src="/posts/bafa194/office-365-email-template.png" alt="Build flow for Office 365 emails"></li>
</ol>
<p>”<strong>Save Office 365 email attachments to OneDrive for Business</strong>“是一键式模板之一，使用时，您只需要回答构建流所必需的问题，而不必编写任何代码。</p>
<p>在模板图形界面上，有一个描述，说明了模板的功能以及成功所需的条件和资源。</p>
<p>系统将要求您提供Microsoft Office 365 Outlook和Microsoft OneDrive for Business服务的凭据。 如果您经常使用这两种服务，那您应该已经注册了。</p>
<ul>
<li>该流连接到您的工作电子邮件以获取任何附件。</li>
<li>然后，该流程将在您的OneDrive for Business帐户上创建一个文件夹，以自动将发送到您的工作电子邮件地址的每个附件放在该文件夹中。</li>
</ul>
<p>现在已经创建了流，您可以单击Edit查看为您创建的内容的详细信息。</p>
<p>现在，您可以从流构建器中单击触发器和操作，以查看如何为您构建此流。 如您所见，没有代码，所有内容都可以自定义或扩展以更好地满足您的业务需求。例如，您也许尝试将流程配置为仅处理来自老板的电子邮件。 这是一个提示：单击“<strong>On new email</strong>”触发器的“<strong>Show advanced options</strong>”。</p>
<p>现在您已经了解了从模板开始是多么容易，那么让我们来谈谈几个关键概念。</p>
<h3 id="Microsoft-Power-Automate中的重要概念"><a href="#Microsoft-Power-Automate中的重要概念" class="headerlink" title="Microsoft Power Automate中的重要概念"></a>Microsoft Power Automate中的重要概念</h3><p>在构建流程时，请牢记以下概念：</p>
<ul>
<li>每个流程都有两个主要部分：触发器和一个或多个动作。</li>
<li>您可以将触发器视为流程的开始动作。 触发器可以是新邮件到达收件箱，也可以是新项目添加到SharePoint列表中。</li>
<li>动作是您希望在调用触发器时发生的事情。 例如，新的电子邮件触发器将开始在OneDrive for Business上创建新文件的操作。 其他动作示例包括发送电子邮件，发布推文和开始审批。</li>
</ul>
<p>您可以在流中执行的操作类型的一些示例包括：</p>
<ul>
<li><strong>Loops</strong> – 执行一个动作，直到满足条件才能转到流程的下一步</li>
<li><strong>Switch</strong> – 根据对输入的评估确定要执行的单个案例</li>
<li><strong>Do Until</strong> – 执行一系列动作，直到指定条件的值为真</li>
<li><strong>Apply to each</strong> – 对输入数组中的每个项目执行一个动作块</li>
<li><strong>Expressions</strong> – 基本定义，描述可以在流程中运行的实际逻辑，可以手动编写</li>
</ul>
<p>您还可以在流程中执行数据操作，例如撰写，创建CSV表，联接或选择。 当您从头开始构建自己的流程时，这些概念将在以后发挥作用。</p>
<h3 id="触发器或运行流"><a href="#触发器或运行流" class="headerlink" title="触发器或运行流"></a>触发器或运行流</h3><p>使用Power Automate，您不需要以与运行Power Apps应用程序相同的方式来运行流程，而是执行触发流运行的活动。对于上一个流程，它会在每次收到带有附件的新电子邮件时自动运行，而不是定期手动运行该流程。 这是因为流具有确定何时应运行的触发器。</p>
<p>定义触发器时，有几种不同的类型：</p>
<ul>
<li><strong>When something changes:</strong> 这些是在数据更改时运行的触发器。 例如，它可能是在SharePoint中创建了新项目，在Dynamics中更新了线索，或者从Outlook中删除了事件。 前面的流程是流程发生变化时运行的示例。</li>
<li><strong>On a schedule:</strong> 您可以设置要在一天中的某个特定时间触发并重复出现的流程。 这允许进行诸如每天上午8点检查以查看是否有待续订的帐户续订，如果有的话，向必要的人员发送电子邮件等过程。</li>
<li><strong>On a button press:</strong> 该触发器的形成有多种方式。 这可能是通过移动应用程序运行流程虚拟按钮，或者使用第三方选项单击物理按钮，甚至是在Power Apps内部按下按钮时运行。 这使您或用户可以自行控制以按需“运行”流。</li>
</ul>
<h2 id="建立重复流"><a href="#建立重复流" class="headerlink" title="建立重复流"></a>建立重复流</h2><p>您可以创建按特定时间表执行一个或多个任务（例如，通过电子邮件发送报告）的流程：</p>
<ul>
<li>一天一次，一小时一次，或者一分钟一次</li>
<li>在指定的日期运行</li>
<li>在指定的天数，小时数或分钟数之后运行</li>
</ul>
<h3 id="创建流程"><a href="#创建流程" class="headerlink" title="创建流程"></a>创建流程</h3><ol>
<li>启动<a target="_blank" rel="noopener" href="https://flow.microsoft.com/">Power Automation</a>，然后使用您的组织帐户登录。</li>
<li>在左侧窗格中，选择My flows。</li>
<li>选择New，然后选择<strong>Scheduled–from blank</strong>。</li>
<li>在对话框中，指定流的名称以及流应运行的频率。例如，如果您希望流每两周运行一次，请在Interval字段中输入2，并在Frequency字段中选择Week。您还可以指定应在星期几运行。 对话框底部的文本用简单的语言解释您的输入。<img src="/posts/bafa194/build-scheduled-flow.png" alt="Specify the recurrence"></li>
<li>完成输入之后，选择Create。</li>
</ol>
<h3 id="指定高级选项"><a href="#指定高级选项" class="headerlink" title="指定高级选项"></a>指定高级选项</h3><ol>
<li><p>创建流程后，请选择<strong>Recurrence</strong>的标题以将其展开。 选择编辑，然后选择显示高级选项。</p>
<p>高级选项根据“间隔”和“频率”字段的值而有所不同。 如果您看到的对话框与下面的图形不匹配，请确保将“间隔”和“频率”字段设置为与图形中显示的值相同的值。</p>
</li>
</ol>
<ol start="2">
<li><p>在这里，您可以指定一个时区来表示本地时区，可使用世界标准时间（UTC）或其他时区。</p>
</li>
<li><p>指定流应该运行的日期和流应该运行的时间。</p>
</li>
</ol>
<p>例如，设置如下图所示的流，以便不早于2018年1月1日星期一中午(太平洋时间)启动它，并每两周在周二下午5:30(太平洋时间)运行一次。</p>
<p><img src="/posts/bafa194/recurrence-advanced-options.png" alt="Advanced options"></p>
<h3 id="使用compose操作"><a href="#使用compose操作" class="headerlink" title="使用compose操作"></a>使用compose操作</h3><p>在设计流时，使用数据操作—compose操作可以避免多次输入相同的数据。例如，在设计流程时，如果需要多次输入数字数组:[0,1,2,3,4,5,6,7,8,9]，可以使用compose操作保存数组，如下所示：</p>
<ol>
<li>搜索Compose，然后选择数据操作—Compose (Compose)操作。<img src="/posts/bafa194/data-operation-compose-action.png" alt="Search for and select the compose action"></li>
<li>将数组输入到稍后要引用的输入框中<img src="/posts/bafa194/input-array.png" alt="Configure the compose action"></li>
<li>【后续步骤说明如何使用已保存的内容】添加操作，如 <strong>Data Operation – Join</strong></li>
<li>选择要向其中添加您在compose操作中保存的内容的控件，将会打开”<strong>Add dynamic content from the apps and connectors used in this flow</strong>“</li>
<li>在打开的页面中，选择dynamic content选项卡的Compose类别下的Outputs令牌。<img src="/posts/bafa194/use-output-from-compose-action.png" alt="Use output from compose action"></li>
<li>接下来点击右上角的图标，将流程保存<img src="/posts/bafa194/save-flow.png" alt="Click Save button"></li>
<li>然后，选择页面左上角流程名称旁边的后退箭头<img src="/posts/bafa194/flow-back-arrow.png" alt="Click back arrow"></li>
<li>最后，您可以从顶部的命令栏中运行该流程<img src="/posts/bafa194/command-bar-run-flow.png" alt="Run the flow"></li>
</ol>
<h2 id="构建按钮流"><a href="#构建按钮流" class="headerlink" title="构建按钮流"></a>构建按钮流</h2><h3 id="通过Power-Automate移动应用程序使用按钮创建流程"><a href="#通过Power-Automate移动应用程序使用按钮创建流程" class="headerlink" title="通过Power Automate移动应用程序使用按钮创建流程"></a>通过Power Automate移动应用程序使用按钮创建流程</h3><p>当然，我们有一个应用程序-Power Automate移动应用程序！ 通过此应用，您可以访问以下功能：</p>
<ul>
<li>Activity Feed</li>
<li>Browsing</li>
<li>Buttons</li>
<li>Managing Flows</li>
</ul>
<p>首先，您需要从应用商店下载并安装Power Automate移动应用。</p>
<p>安装完成后，启动并登录。</p>
<p>当你第一次启动应用程序时，你会看到Activity Feed。Activity Feed是查看流程中发生的情况的地方。 您无法获得像从PC上一样的完整体验，但是它将向您显示有用的详细信息。</p>
<p>例如，您将看到流的最后一个活动。您可以看到流是成功还是失败。如果失败，您将看到它在哪个步骤上失败了。</p>
<h3 id="如何启动按钮流程"><a href="#如何启动按钮流程" class="headerlink" title="如何启动按钮流程"></a>如何启动按钮流程</h3><p>按钮流是通过手动操作启动的流程。 例如，您可以创建一个按钮以将“今天在家工作”电子邮件发送给经理。 如果您住在远离工作场所的地方，那么在交通混乱的日子里可以使用此按钮！</p>
<ul>
<li>选择 <strong>Buttons</strong> 以使用其中一些流程。</li>
<li>选择 <strong>Browse</strong> 以检出可以添加到集合中的更多按钮流的模板。</li>
</ul>
<p>为了向您展示如何使用按钮，我们将使用<strong>Send myself a reminder in 10 minutes button</strong>模板。</p>
<ol>
<li>选择<strong>Browse。</strong></li>
<li>选择<strong>Send myself a reminder in 10 minutes button</strong>流<img src="/posts/bafa194/browse-templates.png" alt="Reminder Button"></li>
<li>选择使用此模板。<img src="/posts/bafa194/use-template.png" alt="Use this template"></li>
<li>选择Create，然后选择Done，流程就会被保存。<img src="/posts/bafa194/create-flow-from-template.png" alt="Creation completed"><img src="/posts/bafa194/saved-flow.png" alt="Reminder that the flow is saved"></li>
<li>选择Buttons以查看新的流。<img src="/posts/bafa194/button-flow.png" alt="New button flow in your buttons"></li>
<li>选择流。10分钟后，你会收到提醒。</li>
</ol>
<h2 id="构建审批请求"><a href="#构建审批请求" class="headerlink" title="构建审批请求"></a>构建审批请求</h2><p>在本单元中，您将学习如何构建使用审批的业务友好型方案。</p>
<p>在这种情况下，有权访问Microsoft SharePoint列表的任何人都可以在不了解Twitter的情况下发布推文。 然后，社交媒体团队可以批准或拒绝这些推文。 因此，该团队将控制所有账号以及向客户提供的内容。</p>
<h3 id="第一步：为推文创建一个SharePoint列表"><a href="#第一步：为推文创建一个SharePoint列表" class="headerlink" title="第一步：为推文创建一个SharePoint列表"></a>第一步：为推文创建一个SharePoint列表</h3><p>您将使用一个模板，每当在特定列表中创建新项目时，该模板就会启动审批流程。如果该项目获得批准，则会在Twitter上发布一条推文。 对于这个单元，您将通过添加一些步骤来更改流程，根据审批响应修改SharePoint列表，指示该项目是否被批准，并将审批者增加的推文注释也添加到表格中。</p>
<p>首先，让我们创建SharePoint列表。</p>
<ol>
<li>在你的SharePoint站点上，创建一个名为ContosoTweets的SharePoint列表。</li>
<li>打开列表，并选择Add column。</li>
<li>选择**+ Add column** 添加以下列。在创建每个列之后选择Save。<ol>
<li>添加名为TweetContent的多行文本类型的列。此列将保存稍后将被批准的tweet的内容。</li>
<li>添加名为TweetDate的日期和时间类型的列。 要选择日期和时间类型，请选择<strong>More</strong>。</li>
<li>添加一个是/否类型的列，名为ApprovalStatus。 然后，批准者可以选择是或否来批准或拒绝该推文。</li>
<li>添加一个名为ApproverComments的单行文本类型列。审批者然后可以添加关于审批状态的注释。<img src="/posts/bafa194/new-columns.png" alt="img"></li>
</ol>
</li>
<li>复制SharePoint列表的URL。 创建流程时需要使用它。</li>
</ol>
<h3 id="第二步：创建审批请求流"><a href="#第二步：创建审批请求流" class="headerlink" title="第二步：创建审批请求流"></a>第二步：创建审批请求流</h3><ol>
<li>登录到Power Automate，然后选择Approvals。</li>
<li>选择“<strong>Create approval flow</strong>”，然后向下滚动并选择“<strong>Post list items to Twitter after approval</strong>”。<img src="/posts/bafa194/create-approval.png" alt="Create Approval button"></li>
<li>确保您的SharePoint、Approvals和Twitter账户凭证是正确的，然后选择Continue。<img src="/posts/bafa194/verify-credentials.png" alt="Linked account credentials"></li>
<li>返回Microsoft Flow中的“创建新项目时”操作中，输入以下值：<ol>
<li><strong>Site Address</strong>: 输入您团队的SharePoint网站的URL。</li>
<li><strong>List Name</strong>: 选择ContosoTweets。<img src="/posts/bafa194/site-address.png" alt="Create new items form list options"></li>
</ol>
</li>
<li>在启动审批操作中，选择Edit以显示所有字段。<img src="/posts/bafa194/edit-all-fields.png" alt="Start an approval form highilghting Edit"></li>
<li>在Title字段中输入New tweet，然后在动态内容列表中选择Title。<img src="/posts/bafa194/tweet-title.png" alt="Title form options"></li>
<li>在Assigned to字段中，输入并选择您的名称或测试用户的名称。<img src="/posts/bafa194/tweet-assigned.png" alt="Assigned to field in creating a new approval"></li>
<li>在Details字段中，删除默认项，并在动态内容列表中添加TweetContent、TweetDate和DisplayName创建的内容。添加单词on和by，使内容更具可读性，如下所示。<img src="/posts/bafa194/tweet-details.png" alt="Customizing details field"></li>
<li>在“<strong>Item Link</strong>”字段中，粘贴您在上一过程中复制的SharePoint列表的URL。 在“<strong>Item Link Description</strong>”字段中，输入“ Contoso Tweet列表”。<img src="/posts/bafa194/tweet-item-link.png" alt="Item link field"></li>
<li>在“<strong>Condition</strong>”操作中，将鼠标悬停在“ <strong>IF YES</strong>”框上，选择加号（+），然后选择“<strong>Add an action</strong>”。<img src="/posts/bafa194/add-action.png" alt="Editing conditions"></li>
<li>搜索更新项目，选择SharePoint连接器，然后选择“ <strong>SharePoint – Update item</strong>”操作。<img src="/posts/bafa194/update-item.png" alt="Adding SharePoint as a connector"></li>
<li>在“网站地址”中，再次输入团队的SharePoint网站的URL。 在“列表名称”字段中，再次选择ContosoTweets。 在ID字段中，从动态内容列表中添加ID。 Id字段用于匹配SharePoint列表中的实际tweet请求。<img src="/posts/bafa194/address-list-id.png" alt="Pulling in ID Field"></li>
<li>选择Title字段，然后在动态内容列表中搜索Title。从“ <strong>When a new item is created</strong>”操作添加标题。<img src="/posts/bafa194/add-title.png" alt="Pulling in Title field"></li>
<li>在ApprovalStatus字段中，选择Yes。然后选择ApproverComments字段，并从动态内容列表中添加注释。<img src="/posts/bafa194/approver-status.png" alt="Pulling in Comments field"></li>
<li>在“<strong>IF NO, DO NOTHING</strong>”框底部附近，选择“ <strong>Add an action</strong>”。<img src="/posts/bafa194/add-no-action.png" alt="Confirmation add an action button"></li>
<li>重复步骤11至14，以创建“ SharePoint –更新项目”操作。 设置与为“是”条件设置的值相同的值。 唯一的区别是这次您将ApprovalStatus字段设置为No。<img src="/posts/bafa194/status-no.png" alt="Update item to not approved status"></li>
<li>选择Post a tweet操作，然后选择Edit。然后选择Tweet文本字段，并从动态内容列表中添加TweetContent。这一步将创建实际的tweet，然后在它被批准后将其发布到Twitter。<img src="/posts/bafa194/post-tweet.png" alt="Tween content field"></li>
<li>选择保存。</li>
</ol>
<p>恭喜你!您刚刚创建了第一个审批流程。</p>
<p>该部分展示了Power Automate可以使您的团队更加高效的另一种方式。 您的团队可以提供想法，相关新闻或产品指南，但是您可以控制发布给客户的内容。</p>
<h3 id="使用审批中心"><a href="#使用审批中心" class="headerlink" title="使用审批中心"></a>使用审批中心</h3><p>Power Automate可帮助用户通过审批中心管理其审批。在左侧菜单的Actions下选择Approvals。在这里，您将能够查看已发送或收到的所有审批以及审批历史记录。 单击您刚刚发送的项目以查看详细信息。 如您所见，Power Automate显示请求的详细信息，包括请求者，审批者和结果。 您可以直接在电子邮件中批准或拒绝请求，也可以直接到审批中心处理。 通过发出更多请求并返回查看其功能，以此来熟悉审批中心。</p>
<h3 id="导出流程"><a href="#导出流程" class="headerlink" title="导出流程"></a>导出流程</h3><p>现在，您已经构建了流，您还可以导出流。 导出流时，可以导出到包或Logic Apps模板。 这两个选项都可从流程详细信息页面获得。</p>
<p>当您导出到程序包时，您可以将生成的zip文件发送给要导入的同一租户中的同事，或发送给另一租户中的某人。然后向导将引导他们导入包并将其连接到特定的数据源。</p>
<p>导出到Logic Apps模板时，可以转到Azure Logic Apps并导入模板。 然后，可以使用Logic Apps运行在流程中创建的逻辑，或者使用Azure Logic Apps特定的功能来扩展逻辑。 Azure Logic Apps是Power Automate流构建的引擎。 您可以在此处了解有关将流导出到Logic Apps的更多信息：<a target="_blank" rel="noopener" href="https://docs.microsoft.com/en-us/azure/logic-apps/export-from-microsoft-flow-logic-app-template">/azure/logic-apps/export-from-microsoft-flow-logic-app-template</a>。</p>
<h2 id="构建业务流程流"><a href="#构建业务流程流" class="headerlink" title="构建业务流程流"></a>构建业务流程流</h2><p>在使用模型驱动的应用程序和Common Data Service时，业务流程流用于指导用户完成业务流程的各个步骤。 下面的示例将指导您完成构建业务流程时需要进行的流程和决策。</p>
<h3 id="创建业务流程流"><a href="#创建业务流程流" class="headerlink" title="创建业务流程流"></a>创建业务流程流</h3><ol>
<li>启动Power Automation，然后使用您的组织帐户登录。</li>
<li>在左侧窗格中，选择Flows。</li>
<li>在顶部栏上，选择“<strong>Business process flows</strong>”。</li>
<li>在右边，选择Create from Blank。</li>
<li>在“<strong>Create business process flow</strong>”窗格中，填写必填字段：<ol>
<li><strong>Flow Name</strong>: 流程的显示名称不必唯一，但是对于必须选择流程的人员来说，它应该是有意义的。 您可以稍后更改此名称。</li>
<li><strong>Name</strong>: 基于显示名称的唯一名称。 您可以在创建流程时更改名称，但是在创建流程后不能更改名称。</li>
<li><strong>Common Data Service entity</strong>: 选择要作为流程基础的实体。</li>
<li>您选择的实体会影响可用于可添加到流程流第一阶段的步骤的字段。保存过程后，您将无法更改实体。</li>
</ol>
</li>
<li>选择确定。创建新流程，并启动业务流程设计器。 设计器页面分为三个部分：<ol>
<li>在左侧，已经为您创建了一个名为Account New stage的阶段。</li>
<li>在这个阶段的下面是一个迷你地图，它可以让您看到整个流程或快速进入流程的一部分。</li>
<li>右侧是可以拖动到设计器的组件。 您还可以设置属性以创建业务流程。<img src="/posts/bafa194/business-process-flow-designer.png" alt="Power Apps business process flow designer"></li>
</ol>
</li>
<li>添加阶段，这样用户就可以从流程中的一个业务阶段进入另一个业务阶段：<ol>
<li>将Stage组件从Components选项卡拖动到设计器中的加号(+)。<img src="/posts/bafa194/new-stage-component.png" alt="Stage tabs"></li>
<li>选中阶段，然后在右边的Properties选项卡上设置属性：<ol>
<li>输入显示名称。</li>
<li>可选：选择阶段的类别（例如，识别或研究）。 此类别在处理栏上显示为人字形。<img src="/posts/bafa194/business-process-flow.png" alt="Business Process Flow stages"></li>
<li>完成属性设置后，选择Apply。</li>
</ol>
</li>
</ol>
</li>
<li>向每个阶段添加步骤：<ol>
<li>将step组件从Components选项卡拖动到stage。<img src="/posts/bafa194/add-step-to-stage.png" alt="Adding steps to each stage"></li>
<li>选择步骤，然后在Properties选项卡上设置属性：<ol>
<li>输入步骤的显示名称。</li>
<li>如果用户应该能够输入数据以完成某个步骤，请在下拉列表中选择适当的字段。</li>
<li>如果用户必须填写所选字段以完成该步骤，然后才能继续进行流程的下一阶段，则选择Required。</li>
<li>完成后，选择Apply。</li>
</ol>
</li>
</ol>
</li>
<li>在流程中添加一个分支（条件）：<ol>
<li>将<strong>Condition</strong>组件从Components选项卡拖动到两个阶段之间的加号(+)。<img src="/posts/bafa194/add-condition-to-business-process-flow.png" alt="Condition branches"></li>
<li>选择条件，然后在Properties选项卡上设置属性。完成后，选择Apply。</li>
</ol>
</li>
<li>向流程添加工作流：<ol>
<li>将工作流组件从Components选项卡拖动到特定阶段或<strong>Global Workflow：</strong><ul>
<li>如果流程进入或退出该阶段时应该触发工作流，则将工作流组件拖动到特定阶段。工作流组件必须基于与stage相同的主实体。</li>
<li>如果工作流在流程被激活或存档时(即状态更改为Completed或Abandoned时)应该被触发，则将工作流组件拖动到全局工作流项。工作流组件必须基于与流程相同的主实体。</li>
</ul>
</li>
<li>选择条件，然后在Properties选项卡上设置属性<ol>
<li>输入显示名称。</li>
<li>选择何时触发工作流。</li>
<li>搜索与stage实体匹配的现有按需活动工作流，或者通过选择New创建工作流。</li>
<li>完成后，选择Apply。</li>
</ol>
</li>
</ol>
</li>
<li>要验证业务流程流，请在操作栏上选择validate。</li>
<li>要在继续处理过程的同时将过程保存为草稿，请在操作栏上选择save。</li>
<li>要激活该过程并使其对您的团队可用，请在操作栏中选择activate。</li>
<li>若要定义谁拥有创建、读取、更新或删除业务流程流实例的特权，请选择操作栏上的Edit Security Roles。例如，对于与服务相关的流程，您可以授予客户服务代表完全访问权限以更改业务流程实例。 但是您可以为销售代表提供对实例的只读访问权限，以便他们可以监视其客户的售后活动。<ol>
<li>在“安全角色”窗格中，选择角色的名称，以打开该角色的详细信息页面。</li>
<li>在业务流程流选项卡上，选择选项来为角色分配业务流程流的适当特权。<img src="/posts/bafa194/business-process-flow-security-role.png" alt="Business process flow tab for security roles"></li>
<li>选择保存。</li>
</ol>
</li>
</ol>
<h3 id="编辑业务流程流"><a href="#编辑业务流程流" class="headerlink" title="编辑业务流程流"></a>编辑业务流程流</h3><p>创建业务流程后，您可以对其进行编辑。</p>
<ol>
<li>在Power Apps主页上，在左窗格中选择Flows。</li>
<li>在流程列表中，选择您创建的业务流程流，然后选择Edit按钮。</li>
</ol>
<p>编辑业务流程流的各个阶段时，请记住以下几点：</p>
<ul>
<li>业务流程流最多可以有30个阶段。</li>
<li>您可以添加或更改阶段的以下属性：<ul>
<li><strong>Stage Name</strong>: 创建阶段后，可以更改阶段名称。</li>
<li><strong>Entity</strong>: 您可以更改除第一个阶段以外的任何阶段的实体。</li>
<li><strong>Stage Category</strong>: 类别允许您根据操作的类型对阶段进行分组。对于按照记录所在的阶段对记录进行分组的报告来说，这很有用。阶段类别的选项来自“阶段类别”全局选项集。 您可以向此全局选项集添加更多选项，并更改现有选项的标签。 您也可以删除选项，但是我们建议您保留现有选项。 如果删除选项，则以后将无法重新添加。 如果您不想使用某个选项，请将标签更改为“不使用”。</li>
<li><strong>Relationship</strong>: 当流程中的前一个阶段基于与当前阶段不同的实体时，进入一个关系。对于当前阶段，选择select relationships，然后指定当流在两个阶段之间移动时应该使用的关系。我们建议您指定关系，因为它们具有以下优点：<ul>
<li>属性映射通常是为关系定义的。这些属性映射会自动在记录之间传递数据。因此，它们有助于最小化所需的数据输入量。</li>
<li>当您为一个记录在流程栏上选择下一个阶段时，使用该关系的任何记录都会在流程流中列出。从而促进了流程中记录的重用。此外，您可以使用工作流来自动化记录的创建。用户只需选择工作流，而不是创建一个记录。因此，流程得到了简化。</li>
</ul>
</li>
<li><strong>Set Process Flow Order</strong>: 如果一个实体（记录类型）有多个业务流程，则必须指定将哪个流程自动分配给新记录。在操作栏上，选择Order Process Flow。对于新记录或尚未拥有与之关联的流程流的记录，将使用用户能够访问的第一个业务流程流。</li>
<li><strong>Enable Security Roles</strong>: 用户对业务流程流的访问取决于在分配给用户的安全角色中为业务流程流定义的特权。 默认情况下，只有系统管理员和系统定制程序安全角色可以查看新的业务流程。</li>
</ul>
</li>
</ul>
<p>您已经亲眼看到了创建业务流程流的流程和选项。您现在可以将这些经验应用到您自己的业务流程流中，并通过添加条件继续优化您的流程。业务流程流提供了多个级别的自定义，以帮助简化业务数据的处理。</p>
<h2 id="Knowledge-check"><a href="#Knowledge-check" class="headerlink" title="Knowledge check"></a>Knowledge check</h2><ol>
<li><p>One of your colleagues would like to set up a Flow to write an item to a SharePoint list when they receive an email from their boss. Which of the following would get them started?</p>
<ul>
<li><p>See if any templates are available for this scenario. If one exists, use that, otherwise create a blank Flow with a “When an email is received” trigger.</p>
<p>【Correct.】 Don’t discount the template store in Power Automate; more often than not, someone has already solved this problem before. However, if they haven’t, you can just create a new Flow and use the appropriate Trigger to achieve your goal.</p>
</li>
<li><p>Create an “Instant” Flow and set the trigger to be “When an email is received”, then add an action for creating the SharePoint item.</p>
</li>
<li><p>Create an “Automated” Flow with only one action: create an item in SharePoint.</p>
</li>
</ul>
</li>
<li><p>Your department would like to set up an approval system for items that are being written to a SharePoint list. You have been assigned the task of creating the system. Using Flow, what’s the best approach?</p>
<ul>
<li><p>Create an Automated Flow from Blank and add a trigger for “When a new item is created” in SharePoint, and actions for the approvals.</p>
</li>
<li><p>Generate an Approval Flow from the built-in SharePoint Approvals functionality on your SharePoint list.</p>
<p>【Correct.】 Why reinvent the wheel? SharePoint’s built-in Approvals Flows are great, and using the information in this module you can set them up quickly and easily.</p>
</li>
<li><p>Set up a blank Flow to send approval emails to the department manager when a new item is created in the SharePoint List.</p>
</li>
</ul>
</li>
<li><p>Your organization has started using lots of Approval Flows, and users are complaining that they have too many approvals to keep track of. They don’t know what is approved and what is still pending their approval. What is the easiest way for them to check?</p>
<ul>
<li><p>Have the users navigate to the Approval Center in Power Automate.</p>
<p>【Correct.】 In the Approval Center, users will be able to view their outstanding approvals as well as their approval history in a much easier-to-read platform. All of the approvals that require that user’s interaction will be available through the Approval Center.</p>
</li>
<li><p>Have the users set up Outlook rules to catch approvals so they are more visible.</p>
</li>
<li><p>Send the users to the SharePoint list, which holds the records being approved to review which ones are approved and which ones are not.</p>
</li>
</ul>
</li>
<li><p>One of your colleagues would like to post information about SharePoint items that have been approved to Twitter. Is this possible? If so, how would he do it?</p>
<ul>
<li><p>No, it’s not possible. SharePoint lists don’t connect to Twitter directly, so there’s no way to Tweet about approved items.</p>
</li>
<li><p>Yes, it’s possible. He can create a Flow to monitor his SharePoint list for approved items, then notify him so he can Tweet the details manually.</p>
</li>
<li><p>Yes, it’s possible. He can create a Flow to monitor his SharePoint list for approved items, then Tweet the details.</p>
<p>【Correct.】 This was covered in this module, so you can refer back to earlier in the module to see how he could achieve it.</p>
</li>
</ul>
</li>
</ol>
<h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>在一个注意力越来越分散的世界里，为了更好地专注于手头的重要工作，减轻重复性或琐碎的任务比以往任何时候都更重要。Power Automate通过利用数百个连接器，模板，触发器和操作使企业能够做到这一点，从而使初学者和高级开发人员都可以设计强大的工作流程并提高业务效率。</p>
<p>现在，您已经阅读了本模块，您应该能够：</p>
<ul>
<li>从模板创建流</li>
<li>按计划创建重复流</li>
<li>创建由按钮触发的流程</li>
<li>创建审批请求流程并利用审批中心</li>
<li>创建业务流程流</li>
</ul>
<h3 id="关键点"><a href="#关键点" class="headerlink" title="关键点"></a>关键点</h3><ol>
<li>Power Automate具有数百个连接器，以确保您可以创建与所有业务程序集成的有用解决方案。</li>
<li>Power Automate具有数百个模板，这些模板结合了来自连接器的操作和触发器，以创建可用于任何业务场景的工作流。</li>
<li>自动化可以节省您在重复性任务上花费的时间和精力，使您的业务运行得更顺利。</li>
<li>Power Automate的批准中心使用户可以轻松地查看和管理来自各种流程的审批，以确保易用性和效率。</li>
</ol>
<h3 id="资源"><a href="#资源" class="headerlink" title="资源"></a>资源</h3><h4 id="Power-Automate"><a href="#Power-Automate" class="headerlink" title="Power Automate"></a>Power Automate</h4><ul>
<li><a target="_blank" rel="noopener" href="https://docs.microsoft.com/en-us/flow/">Power Automate Documentation</a></li>
</ul>
<h4 id="其它学习模块"><a href="#其它学习模块" class="headerlink" title="其它学习模块"></a>其它学习模块</h4><ul>
<li><a target="_blank" rel="noopener" href="https://docs.microsoft.com/en-us/learn/modules/get-started-with-flow/">Get started with Power Automate</a></li>
<li><a target="_blank" rel="noopener" href="https://docs.microsoft.com/en-us/learn/modules/build-more-flows/">Build more complex flows with Power Automate</a></li>
</ul>

            </div>
            <hr/>

            

    <div class="reprint" id="reprint-statement">
        
            <div class="reprint__author">
                <span class="reprint-meta" style="font-weight: bold;">
                    <i class="fas fa-user">
                        文章作者:
                    </i>
                </span>
                <span class="reprint-info">
                    <a href="/about" rel="external nofollow noreferrer">Guo Yaxiang</a>
                </span>
            </div>
            <div class="reprint__type">
                <span class="reprint-meta" style="font-weight: bold;">
                    <i class="fas fa-link">
                        文章链接:
                    </i>
                </span>
                <span class="reprint-info">
                    <a href="https://www.codinghonest.space/posts/bafa194.html">https://www.codinghonest.space/posts/bafa194.html</a>
                </span>
            </div>
            <div class="reprint__notice">
                <span class="reprint-meta" style="font-weight: bold;">
                    <i class="fas fa-copyright">
                        版权声明:
                    </i>
                </span>
                <span class="reprint-info">
                    本博客所有文章除特別声明外，均采用
                    <a href="https://creativecommons.org/licenses/by/4.0/deed.zh" rel="external nofollow noreferrer" target="_blank">CC BY 4.0</a>
                    许可协议。转载请注明来源
                    <a href="/about" target="_blank">Guo Yaxiang</a>
                    !
                </span>
            </div>
        
    </div>

    <script async defer>
      document.addEventListener("copy", function (e) {
        let toastHTML = '<span>复制成功，请遵循本文的转载规则</span><button class="btn-flat toast-action" onclick="navToReprintStatement()" style="font-size: smaller">查看</a>';
        M.toast({html: toastHTML})
      });

      function navToReprintStatement() {
        $("html, body").animate({scrollTop: $("#reprint-statement").offset().top - 80}, 800);
      }
    </script>



            <div class="tag_share" style="display: block;">
                <div class="post-meta__tag-list" style="display: inline-block;">
                    
                        <div class="article-tag">
                            
                                <a href="/tags/PowerPlatform%E8%AE%A4%E8%AF%81/">
                                    <span class="chip bg-color">PowerPlatform认证</span>
                                </a>
                            
                        </div>
                    
                </div>
                <div class="post_share" style="zoom: 80%; width: fit-content; display: inline-block; float: right; margin: -0.15rem 0;">
                    <link rel="stylesheet" type="text/css" href="/libs/share/css/share.min.css">
<div id="article-share">

    
    <div class="social-share" data-sites="twitter,facebook,google,qq,qzone,wechat,weibo,douban,linkedin" data-wechat-qrcode-helper="<p>微信扫一扫即可分享！</p>"></div>
    <script src="/libs/share/js/social-share.min.js"></script>
    

    

</div>

                </div>
            </div>
            
                <style>
    #reward {
        margin: 40px 0;
        text-align: center;
    }

    #reward .reward-link {
        font-size: 1.4rem;
        line-height: 38px;
    }

    #reward .btn-floating:hover {
        box-shadow: 0 6px 12px rgba(0, 0, 0, 0.2), 0 5px 15px rgba(0, 0, 0, 0.2);
    }

    #rewardModal {
        width: 320px;
        height: 350px;
    }

    #rewardModal .reward-title {
        margin: 15px auto;
        padding-bottom: 5px;
    }

    #rewardModal .modal-content {
        padding: 10px;
    }

    #rewardModal .close {
        position: absolute;
        right: 15px;
        top: 15px;
        color: rgba(0, 0, 0, 0.5);
        font-size: 1.3rem;
        line-height: 20px;
        cursor: pointer;
    }

    #rewardModal .close:hover {
        color: #ef5350;
        transform: scale(1.3);
        -moz-transform:scale(1.3);
        -webkit-transform:scale(1.3);
        -o-transform:scale(1.3);
    }

    #rewardModal .reward-tabs {
        margin: 0 auto;
        width: 210px;
    }

    .reward-tabs .tabs {
        height: 38px;
        margin: 10px auto;
        padding-left: 0;
    }

    .reward-content ul {
        padding-left: 0 !important;
    }

    .reward-tabs .tabs .tab {
        height: 38px;
        line-height: 38px;
    }

    .reward-tabs .tab a {
        color: #fff;
        background-color: #ccc;
    }

    .reward-tabs .tab a:hover {
        background-color: #ccc;
        color: #fff;
    }

    .reward-tabs .wechat-tab .active {
        color: #fff !important;
        background-color: #22AB38 !important;
    }

    .reward-tabs .alipay-tab .active {
        color: #fff !important;
        background-color: #019FE8 !important;
    }

    .reward-tabs .reward-img {
        width: 210px;
        height: 210px;
    }
</style>

<div id="reward">
    <a href="#rewardModal" class="reward-link modal-trigger btn-floating btn-medium waves-effect waves-light red">赏</a>

    <!-- Modal Structure -->
    <div id="rewardModal" class="modal">
        <div class="modal-content">
            <a class="close modal-close"><i class="fas fa-times"></i></a>
            <h4 class="reward-title">你的赏识是我前进的动力</h4>
            <div class="reward-content">
                <div class="reward-tabs">
                    <ul class="tabs row">
                        <li class="tab col s6 alipay-tab waves-effect waves-light"><a href="#alipay">支付宝</a></li>
                        <li class="tab col s6 wechat-tab waves-effect waves-light"><a href="#wechat">微 信</a></li>
                    </ul>
                    <div id="alipay">
                        <img src="/medias/reward/alipay.png" class="reward-img" alt="支付宝打赏二维码">
                    </div>
                    <div id="wechat">
                        <img src="/medias/reward/wechat.png" class="reward-img" alt="微信打赏二维码">
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

<script>
    $(function () {
        $('.tabs').tabs();
    });
</script>

            
        </div>
    </div>

    

    

    

    

    

    
        <style>
    .mvaline-card {
        margin: 1.5rem auto;
    }

    .mvaline-card .card-content {
        padding: 20px 20px 5px 20px;
    }
</style>

<div class="card mvaline-card" data-aos="fade-up">
    <div class="comment_headling" style="font-size: 20px; font-weight: 700; position: relative; padding-left: 20px; top: 15px; padding-bottom: 5px;">
        <i class="fas fa-comments fa-fw" aria-hidden="true"></i>
        <span>评论</span>
    </div>
    <div id="mvcomments" class="card-content" style="display: grid">
    </div>
</div>

<script src="/libs/minivaline/MiniValine.js"></script>
<script>
    new MiniValine({
        el: '#mvcomments',
        appId: 'oqAo7rCWejwTqHjGC2APTVDX-MdYXbMMI',
        appKey: 'pfyY919tO7iJaDm7lFmvh5Wp',
        mode: 'DesertsP',
        placeholder: 'Write a Comment',
        pathname: window.location.pathname,
        lang: '',
        adminEmailMd5: '8BBC105436DAAF8C803841C8FD13CD0C',
        tagMeta: ["管理员", "小伙伴", "访客"],
        master: ["8BBC105436DAAF8C803841C8FD13CD0C"],
        friends: ["FA21C7921CD42FE9523E957870873F64", "586BAB41BB5692877F7714DFE4947DEC"],
        math: true,
        md: true,
        enableQQ: false,
        NoRecordIP: false,
        visitor: true,
        maxNest: 6,
        pageSize: 6,
        serverURLs: '',
        emoticonUrl: ["https://cdn.jsdelivr.net/npm/alus@latest", "https://cdn.jsdelivr.net/gh/MiniValine/qq@latest", "https://cdn.jsdelivr.net/gh/MiniValine/Bilibilis@latest", "https://cdn.jsdelivr.net/gh/MiniValine/tieba@latest", "https://cdn.jsdelivr.net/gh/MiniValine/twemoji@latest", "https://cdn.jsdelivr.net/gh/MiniValine/weibo@latest"],
    });
</script>

    

    

    

<article id="prenext-posts" class="prev-next articles">
    <div class="row article-row">
        
        <div class="article col s12 m6" data-aos="fade-up">
            <div class="article-badge left-badge text-color">
                <i class="fas fa-chevron-left"></i>&nbsp;上一篇</div>
            <div class="card">
                <a href="/posts/96642465.html">
                    <div class="card-image">
                        
                        
                        <img src="/medias/featureimages/11.jpg" class="responsive-img" alt="PowerPlatform认证备考（9）—— Power BI介绍">
                        
                        <span class="card-title">PowerPlatform认证备考（9）—— Power BI介绍</span>
                    </div>
                </a>
                <div class="card-content article-content">
                    <div class="summary block-with-text">
                        
                            微软PowerPlatform认证考试的相关备考知识.
                        
                    </div>
                    <div class="publish-info">
                        <span class="publish-date">
                            <i class="far fa-clock fa-fw icon-date"></i>2020-11-17
                        </span>
                        <span class="publish-author">
                            
                            <i class="fas fa-bookmark fa-fw icon-category"></i>
                            
                            <a href="/categories/PowerPlatform/" class="post-category">
                                    PowerPlatform
                                </a>
                            
                            
                        </span>
                    </div>
                </div>
                
                <div class="card-action article-tags">
                    
                    <a href="/tags/PowerPlatform%E8%AE%A4%E8%AF%81/">
                        <span class="chip bg-color">PowerPlatform认证</span>
                    </a>
                    
                </div>
                
            </div>
        </div>
        
        
        <div class="article col s12 m6" data-aos="fade-up">
            <div class="article-badge right-badge text-color">
                下一篇&nbsp;<i class="fas fa-chevron-right"></i>
            </div>
            <div class="card">
                <a href="/posts/a781e8a4.html">
                    <div class="card-image">
                        
                        
                        <img src="/medias/featureimages/16.jpg" class="responsive-img" alt="PowerPlatform认证备考（7）—— Power Automate介绍">
                        
                        <span class="card-title">PowerPlatform认证备考（7）—— Power Automate介绍</span>
                    </div>
                </a>
                <div class="card-content article-content">
                    <div class="summary block-with-text">
                        
                            微软PowerPlatform认证考试的相关备考知识.
                        
                    </div>
                    <div class="publish-info">
                            <span class="publish-date">
                                <i class="far fa-clock fa-fw icon-date"></i>2020-11-16
                            </span>
                        <span class="publish-author">
                            
                            <i class="fas fa-bookmark fa-fw icon-category"></i>
                            
                            <a href="/categories/PowerPlatform/" class="post-category">
                                    PowerPlatform
                                </a>
                            
                            
                        </span>
                    </div>
                </div>
                
                <div class="card-action article-tags">
                    
                    <a href="/tags/PowerPlatform%E8%AE%A4%E8%AF%81/">
                        <span class="chip bg-color">PowerPlatform认证</span>
                    </a>
                    
                </div>
                
            </div>
        </div>
        
    </div>
</article>

</div>


<script>
    $('#articleContent').on('copy', function (e) {
        // IE8 or earlier browser is 'undefined'
        if (typeof window.getSelection === 'undefined') return;

        var selection = window.getSelection();
        // if the selection is short let's not annoy our users.
        if (('' + selection).length < Number.parseInt('120')) {
            return;
        }

        // create a div outside of the visible area and fill it with the selected text.
        var bodyElement = document.getElementsByTagName('body')[0];
        var newdiv = document.createElement('div');
        newdiv.style.position = 'absolute';
        newdiv.style.left = '-99999px';
        bodyElement.appendChild(newdiv);
        newdiv.appendChild(selection.getRangeAt(0).cloneContents());

        // we need a <pre> tag workaround.
        // otherwise the text inside "pre" loses all the line breaks!
        if (selection.getRangeAt(0).commonAncestorContainer.nodeName === 'PRE') {
            newdiv.innerHTML = "<pre>" + newdiv.innerHTML + "</pre>";
        }

        var url = document.location.href;
        newdiv.innerHTML += '<br />'
            + '来源: 码道诚公<br />'
            + '文章作者: Guo Yaxiang<br />'
            + '文章链接: <a href="' + url + '">' + url + '</a><br />'
            + '本文章著作权归作者所有，任何形式的转载都请注明出处。';

        selection.selectAllChildren(newdiv);
        window.setTimeout(function () {bodyElement.removeChild(newdiv);}, 200);
    });
</script>


<!-- 代码块功能依赖 -->
<script type="text/javascript" src="/libs/codeBlock/codeBlockFuction.js"></script>

<!-- 代码语言 -->

<script type="text/javascript" src="/libs/codeBlock/codeLang.js"></script>


<!-- 代码块复制 -->

<script type="text/javascript" src="/libs/codeBlock/codeCopy.js"></script>


<!-- 代码块收缩 -->

<script type="text/javascript" src="/libs/codeBlock/codeShrink.js"></script>


<!-- 代码块折行 -->

<style type="text/css">
code[class*="language-"], pre[class*="language-"] { white-space: pre !important; }
</style>


    

</main>




    <footer class="page-footer bg-color">
    
        <link rel="stylesheet" href="/libs/aplayer/APlayer.min.css">
<style>
    .aplayer .aplayer-lrc p {
        
        display: none;
        
        font-size: 12px;
        font-weight: 700;
        line-height: 16px !important;
    }

    .aplayer .aplayer-lrc p.aplayer-lrc-current {
        
        display: none;
        
        font-size: 15px;
        color: #42b983;
    }

    
    .aplayer.aplayer-fixed.aplayer-narrow .aplayer-body {
        left: -66px !important;
    }

    .aplayer.aplayer-fixed.aplayer-narrow .aplayer-body:hover {
        left: 0px !important;
    }

    
</style>
<div class="">
    
    <div class="row">
        <meting-js class="col l8 offset-l2 m10 offset-m1 s12"
                   server="netease"
                   type="playlist"
                   id="503838841"
                   fixed='true'
                   autoplay='false'
                   theme='#42b983'
                   loop='all'
                   order='random'
                   preload='auto'
                   volume='0.7'
                   list-folded='true'
        >
        </meting-js>
    </div>
</div>

<script src="/libs/aplayer/APlayer.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/meting@2/dist/Meting.min.js"></script>

    
    <div class="container row center-align" style="margin-bottom: 0px !important;">
        <div class="col s12 m8 l8 copy-right">
            Copyright&nbsp;&copy;
            
                <span id="year">2020-2021</span>
            
            <span id="year">2020</span>
            <a href="/about" target="_blank">Guo Yaxiang</a>
            |&nbsp;Powered by&nbsp;<a href="https://hexo.io/" target="_blank">Hexo</a>
            |&nbsp;Theme&nbsp;<a href="https://github.com/blinkfox/hexo-theme-matery" target="_blank">Matery</a>
            <br>
            
            
            
            
            
            <br>
            
            <br>
            
        </div>
        <div class="col s12 m4 l4 social-link ">
    <a href="https://github.com/GuoYaxiang" class="tooltipped" target="_blank" data-tooltip="访问我的GitHub" data-position="top" data-delay="50">
        <i class="fab fa-github"></i>
    </a>



    <a href="mailto:YXGyxg112358@163.com" class="tooltipped" target="_blank" data-tooltip="邮件联系我" data-position="top" data-delay="50">
        <i class="fas fa-envelope-open"></i>
    </a>







    <a href="tencent://AddContact/?fromId=50&fromSubId=1&subcmd=all&uin=1431800679" class="tooltipped" target="_blank" data-tooltip="QQ联系我: 1431800679" data-position="top" data-delay="50">
        <i class="fab fa-qq"></i>
    </a>





    <a href="https://www.zhihu.com/people/guo-ya-xiang" class="tooltipped" target="_blank" data-tooltip="关注我的知乎: https://www.zhihu.com/people/guo-ya-xiang" data-position="top" data-delay="50">
        <i class="fab fa-zhihu1">知</i>
    </a>



    <a href="/atom.xml" class="tooltipped" target="_blank" data-tooltip="RSS 订阅" data-position="top" data-delay="50">
        <i class="fas fa-rss"></i>
    </a>

</div>
    </div>
</footer>

<div class="progress-bar"></div>


    <!-- 搜索遮罩框 -->
<div id="searchModal" class="modal">
    <div class="modal-content">
        <div class="search-header">
            <span class="title"><i class="fas fa-search"></i>&nbsp;&nbsp;搜索</span>
            <input type="search" id="searchInput" name="s" placeholder="请输入搜索的关键字"
                   class="search-input">
        </div>
        <div id="searchResult"></div>
    </div>
</div>

<script src="/js/search.js"></script>
<script type="text/javascript">
$(function () {
    searchFunc('/search.xml', 'searchInput', 'searchResult');
});
</script>

    <!-- 回到顶部按钮 -->
<div id="backTop" class="top-scroll">
    <a class="btn-floating btn-large waves-effect waves-light" href="#!">
        <i class="fas fa-arrow-up"></i>
    </a>
</div>


    <script src="/libs/materialize/materialize.min.js"></script>
    <script src="/libs/masonry/masonry.pkgd.min.js"></script>
    <script src="/libs/aos/aos.js"></script>
    <script src="/libs/scrollprogress/scrollProgress.min.js"></script>
    <script src="/libs/lightGallery/js/lightgallery-all.min.js"></script>
    <script src="/js/matery.js"></script>

    <!-- Baidu Analytics -->

    <!-- Baidu Push -->

<script>
    (function () {
        var bp = document.createElement('script');
        var curProtocol = window.location.protocol.split(':')[0];
        if (curProtocol === 'https') {
            bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
        } else {
            bp.src = 'http://push.zhanzhang.baidu.com/push.js';
        }
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(bp, s);
    })();
</script>

    
    <script src="/libs/others/clicklove.js" async="async"></script>
    
    

    
        <script src="//code.tidio.co/zgiqinzrat1rzwxseqhr2pnzsp2a4rjo.js"></script>
        <script>
            $(document).ready(function () {
                setInterval(change_Tidio, 50);
                function change_Tidio() {
                    var tidio=$("#tidio-chat iframe");
                    if(tidio.css("display")=="block"&& $(window).width()>977 ){
                        document.getElementById("tidio-chat-iframe").style.bottom= ($("div#backTop.top-scroll").css("display")=="none" &&$(window).width()>977)>0? "-40px" : ($("div.toc-title").length&&$(window).width()>977)>0?"85px":"20px";
                        document.getElementById("tidio-chat-iframe").style.right="-15px";
                        document.getElementById("tidio-chat-iframe").style.height=parseInt(tidio.css("height"))>=520?"520px":tidio.css("height");
                        document.getElementById("tidio-chat-iframe").style.zIndex="997";
                    }
                    else if(tidio.css("display")=="block"&&$(window).width()>601 &&$(window).width()<992 ){
                        document.getElementById("tidio-chat-iframe").style.bottom= ($("div#backTop.top-scroll").css("display")=="none" && 601< $(window).width()<992)>0? "-40px":"20px" ;
                        document.getElementById("tidio-chat-iframe").style.right="-15px";
                        document.getElementById("tidio-chat-iframe").style.zIndex="997";
                    }
                    else if(tidio.css("display")=="block"&&$(window).width()<601 && parseInt(tidio.css("height"))<230){
                        document.getElementById("tidio-chat-iframe").style.bottom= ($("div#backTop.top-scroll").css("display")=="none" && $(window).width()<601)>0? "-10px":"45px" ;
                        document.getElementById("tidio-chat-iframe").style.zIndex="997";
                    }
                    if( tidio.css("display")=="block"&&$(window).width()<601 && parseInt(tidio.css("height"))>=230){
                        document.getElementById("tidio-chat-iframe").style.zIndex="998";
                    }
                }
            });
        </script>
    

    

    

    

    

    
    <script src="/libs/instantpage/instantpage.js" type="module"></script>
    

</body>

</html>
